package br.usjt.dominio;
//
public class Filme {
	
	public static final int REGULAR = 0;
	public static final int LANCAMENTO = 1;
	public static final int INFANTIL = 2;
	private String _title;
	
	private Preco preco;

	public Filme(String title, int codigoPreco) {
		_title = title;
		setCodigoPreco(codigoPreco);
	}

	public int getCodigoPreco() {
		return preco.getCodigoDePreco();
	}

	public void setCodigoPreco(int arg) {
		
		switch (arg) {
		case REGULAR:
			preco = new PrecoRegular();
			break;
		case LANCAMENTO:
			preco = new PrecoDeLancamento();
			break;
		case INFANTIL:
			preco = new PrecoDeInfantil();
		break; //a falta do break causa um erro
		default:
			throw new IllegalArgumentException("codigo de preco invalido");
		}

	}

	public String getTitulo() {
		return _title;
	};

	// Filme delega para preco
	public double obterTotal(int diasAlugados) {
		return preco.obterTotal(diasAlugados);
	}

	public int getPontosFidelidade(int diasAlugado) {
		return preco.getPontosFidelidade(diasAlugado);
	}

}
